package com.yonyou.pmclouds.statistic.rmiitf;

import com.yonyou.pmclouds.basecom.exception.BusinessException;
import com.yonyou.pmclouds.statistic.entity.SignInListReportViewVO;
import com.yonyou.pmclouds.statistic.entity.SignInUserReportVO;

import java.util.List;

public interface SignInStatisticService {

    /**
     * 查询项目参与人员的签到统计情况
     *
     * @param tenantId
     * @param projectIds
     * @param timeStart
     * @param timeEnd
     * @return
     */
    List<SignInListReportViewVO> queryListOfProjects(String tenantId, String[] orgIds, String[] projectIds,
                                                     long timeStart, long timeEnd) throws BusinessException;

    /**
     * 查询项目下某成员的个人签到详情
     *
     * @param tenantId
     * @param userId
     * @param projectId
     * @param timeStart
     * @param timeEnd
     * @return
     */
    List<SignInUserReportVO> queryUserSignInOfProject(String tenantId, String userId, String projectId,
                                                      long timeStart, long timeEnd) throws BusinessException;

    /**
     * 查询企业下人员的签到统计情况
     *
     * @param tenantId
     * @param orgIds
     * @param timeStart
     * @param timeEnd
     * @return
     */
    List<SignInListReportViewVO> queryListOfEnterprises(String tenantId, String[] orgIds, long timeStart, long timeEnd) throws BusinessException;

    /**
     * 查询企业下某个人员的具体签到情况
     *
     * @param tenantId
     * @param userId
     * @param orgIds
     * @param timeStart
     * @param timeEnd
     * @return
     * @throws BusinessException
     */
    List<SignInUserReportVO> queryUserSignInOfEnt(String tenantId, String[] orgIds, String enterpriseId, String userId, long timeStart, long timeEnd) throws BusinessException;
}
